import { readFileSync } from 'fs';
import { join } from 'path';
import yaml from 'js-yaml';
// export const configProject = {
//   // port: 4001,
//   // prefix: 'api/v1',
//   // static: {
//   //   dir: 'public',
//   //   maxAge: '1d',
//   //   extensions: ['jpg', 'jpeg', 'png', 'gif', 'txt'],
//   // },
//   // limit: {
//   //   windowMs: 60 * 1000, // 15分钟
//   //   max: 100, // 最大100个请求
//   // },
//   // cors: {
//   //   origin: ['*'],
//   //   methods: ['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH'],
//   //   allowedHeaders: ['Origin', 'X-Requested-With', 'Content-Type', 'Accept', 'Authorization'],
//   //   credentials: true,
//   // },
//   // jwt: {
//   //   secret: 'bao',
//   //   expiresIn: 3600,
//   // },
// };
const configFileNameObj = {
  development: 'dev.yml', // 文件
  test: 'test.yml', // 文件
  staging: 'staging.yml',
  production: 'production.yml',
};
// 通过 env(环境) 加载对应的文件
const loadConfig = (env = 'development') => {
  // configFileName : dev.yml
  const configFileName = configFileNameObj[env];
  // configPath : src/config/dev.yml
  const configPath = join(__dirname, '../config', configFileName);
  // readFileSync : 读额取这个文件 字符串
  const configStr = readFileSync(configPath, 'utf8');
  // 对象 config.get('app.port')// 获取配置文件中的值 {app:{port:4001}}
  return yaml.load(configStr);
};
export const configuration = {
  load: [loadConfig],
};
